﻿using System;

using Yawf.Security.Entities;
using Yawf.Web.Utils;

namespace Yawf.Web.Managers {
	public interface IModelInvokerManager {
		/// <summary>
		/// This method is called to invoke buisness logic on a special request. This method
		/// is invoked by the MVCController after authorization has been done. This mehod
		/// should save output objects into the dataCollector so they later on can be 
		/// shown by the ModelViewerManager
		/// </summary>
		/// <param name="requestWrapper">RequestWrapper object</param>
		/// <param name="responseWrapper">ResponseWrapper object</param>
		/// <param name="resource">path to resource that has been requested</param>
		/// <param name="user">currently logged on user, could be null</param>
		void ProcessModel(RequestWrapper requestWrapper,ResponseWrapper responseWrapper,String resource,IUser user);
	}
}
